<?php
class ExtendTaskFormDecorator extends ATaskFormDecorator{
    public function getFormHTML($params, $view) {
        return $this->task_form->getFormHTML($params, $view).  $view->getCustomer_formbody_step2_template2($params);
    }

    public function validate_form(&$param, &$scope, $manager) {
        
        
        $iserror = false;
        // ANSWER
        if (empty($param['answer'])) {
            $iserror = true;
            $manager->addErorrMessageForField("answer", "Введите вопрос");
        } elseif (strlen($param['answer']) < 3) {
            $iserror = true;
            $manager->addErorrMessageForField("answer", "Слишком короткий вопрос");
        } elseif (strlen($param['description']) > 512) {
            $iserror = true;
            $manager->addErorrMessageForField("answer", "Слишком длинный вопрос");
        } elseif (!preg_match("/^[a-zа-я0-9 ]{3,512}$/ui", $param['answer'])) {
            $iserror = true;
            $manager->addErorrMessageForField("answer", "Использованы недопустимые символы");
        }
        
        // DESCRIPTION

        if (empty($param['description'])) {
            $iserror = true;
            $manager->addErorrMessageForField("description", "Введите описание");
        } elseif (strlen($param['description']) < 3) {
            $iserror = true;
            $manager->addErorrMessageForField("description", "Слишком короткое описание");
        } elseif (strlen($param['description']) > 512) {
            $iserror = true;
            $manager->addErorrMessageForField("description", "Слишком длинное описание");
        } elseif (!preg_match("/^[a-zа-я0-9 ]{3,512}$/ui", $param['description'])) {
            $iserror = true;
            $manager->addErorrMessageForField("description", "В описании использовны недопустимые символы");
        }

        //REPLYTYPE
        if (!isset($param['replytype'])) {
            $iserror = true;
            $manager->addErorrMessageForField("replytype", "Тип ответа не указан");
        } elseif (!in_array(intval($param['replytype']), array(0, 1))) {
            $iserror = true;
            $manager->addErorrMessageForField("replytype", "Указан не допустимый тип ответа");
        }
        else
            $param['replytype'] = intval($param['replytype']);
        //TESTTYPE
        if (!isset($param['testtype'])) {
            $iserror = true;
            $manager->addErorrMessageForField("testtype", "Тип ответа не указан");
        } elseif (!in_array(intval($param['testtype']), array(0, 1))) {
            $iserror = true;
            $manager->addErorrMessageForField("testtype", "Указан не допустимый тип проверки");
        }
        else
            $param['testtype'] = intval($param['testtype']);
        
        
                if ($iserror) {
            return array_merge(array(VALIDATION_FAILED), $this->task_form->validate_form($param, $scope, $manager));
        }
        return array_merge(array(VALIDATION_ACCEPTED), $this->task_form->validate_form($param, $scope, $manager));
    }

    public function submit_form($params, $scope, $manager) {
                $this->task_form->submit_form($params, $scope, $manager);
    }
}

?>
